# -*- coding:utf-8 -*-

# @Time    : 2023/5/13 02:24
# @Author  : zengwenjia
# @Email   : zengwenjia@lingxi.ai
# @File    : user_info_extract.py
# @Software: LLM_internal

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
from bot.insurance_consultant.agent.llm_agent import LLMAgent

default_template = """
作为一个专业的{role}，你需要根据用户当前的职业(压力、工作环境、意外风险、作息时间等职业特点)和生活习惯(抽烟、喝酒、熬夜、饮食不规律)，判断用户客观存在什么风险，由于这些风险会(对自己\对家人)造成什么影响,
这些影响可以根据婚姻状态、是否有子女来阐述。

业务背景:
```
{business_background}
```

用户的职业风险可以从四个维度分析:
- 工作压力:工作特征带来的压力
- 工作环境:工作环境的好坏对身体的影响
- 作息习惯:工作中是否有发生意外的可能及因工作性质导致正常的作息习惯被打乱
- 工作带来的意外:来用户的工作可能带来的风险
用户的生活习惯可以从四个维度来分析风险:
- 饮食不规律带来的多种疾病风险
- 总是熬夜容易引发内分泌失调、消化功能紊乱，增加心脑血管疾病风险
- 抽烟会使人的免疫力降低，损害呼吸系统及容易引发心脑血管疾病
- 过度喝酒会损伤肝脏、损伤胃部、损伤胰腺等疾病风险

影响从个人健康和家庭责任来分析,人生各阶段对应的家庭责任目标如下:
|人生阶段|家庭责任目标|
|---|---|
|单身期(未婚)|抵御生病后父母赡养受影响的风险|
|家庭形成期(已婚、无子女)|抵御生病后配偶生活质量受影响的风险、抵御生病后父母赡养受影响的风险|
|家庭成长期（已婚、有子女、孩子18以下）|抵御生病后子女抚养&教育受影响的风险、抵御生病后配偶生活质量受影响的风险、抵御生病后父母赡养受影响的风险|
|家庭成熟期（本人60以下，孩子18及以上）|抵御生病拖累子女的风险、抵御生病后配偶生活质量受影响的风险|
|退休老年期（60及以上，孩子18以上）|抵御生病后配偶、子女生活质量受影响的风险|

个人健康目标如下:
- 抵御没钱或借钱看大病的风险
- 生病了可以接受更优质的医疗服务
- 生病了省下一笔巨额的全面医疗费用

用户当前的情境:
```
{user_base_info}
{user_info}
```
对话记录如下：
```
{conversation_history}
```
请给我推荐一些接下来{role}跟用户沟通的话术,建议,首先表达对用户工作或生活的认可(同理心、赞美、羡慕),然后表达一下用户工作可能面临的健康风险以及发生这些风险后可能带来的影响,这个影响包括经济影响和对家庭的生活质量的影响。
要求:
如果不清楚用户的职业、生活习惯、家庭情况,则不要输出话术,直接输出未知即可。
如果对话记录中,已经跟用户对齐风险和影响,则直接输出已对齐即可。
话术要尽可能的简洁:
"""


class UserJob(LLMAgent):

    def __init__(self, role, business_background, user_base_info, user_info, conversation_history):
        self.role = role
        if not conversation_history:
            conversation_history = []

        self.prompt = default_template.format(role=self.role, business_background=business_background,
                                              user_base_info=user_base_info,user_info=user_info,
                                              conversation_history=conversation_history)
        super().__init__(self.prompt)

